python控制台等待输出倒计时、转圈、进度条 | 您所在的位置:网站首页 › python tkinter进度条 › python控制台等待输出倒计时、转圈、进度条 |
python控制台等待输出倒计时、转圈、进度条
1. 控制台输出倒计时
#!/usr/bin/python3
# -*- coding:utf-8 -*-
"""
python控制台倒计时
"""
__author__ = "river.yang"
__date__ = "2022/11/26 20:20"
__version__ = "1.0.0"
from time import sleep
from datetime import datetime, timedelta
import time
def count_down(weeks=0, days=0, hours=0, minutes=0, seconds=0):
remain_time = timedelta(weeks=weeks, days=days, hours=hours, minutes=minutes, seconds=seconds)
while remain_time.total_seconds() > 0:
time.sleep(1)
remain_time -= timedelta(seconds=1)
print("\r 倒计时:{}".format(remain_time), end="", flush=True)
def print_test():
for i in range(20):
print("#", end="", flush=True)
sleep(0.1)
if __name__ == '__main__':
print("当前版本: ", __version__)
count_down(seconds=11)
代码解析: 这里主要用到了print函数的几个参数,解释如下: 参数1:end,设置字符串末尾的字符,默认是"/n"换行符,这里赋值"",也就是什么也不加,就不会自动换行 参数2:flush,设置是否清除显示,默认是False,赋值True避免出现重影等显示问题 另外,这里在输出倒计时前,加了"/r"字符,意思是将光标定位到行首进行输出显示 输出效果如下: 输出效果如下: 效果如下: 这里需要依赖第三方库,使用指令安装:pip3 install tqdm # -*- coding=utf-8 -*- import time from tqdm import tqdm for i in tqdm(range(100)): time.sleep(0.1)** 输出效果如下:** 上面的进度条要依赖第三方库,不方便移植程序,用着着实不爽,所以干脆自己实现一个方便移植 #!/usr/bin/python3 # -*- coding:utf-8 -*- """ python控制台进度打印 """ __author__ = "river.yang" __date__ = "2022/11/26 20:20" __version__ = "1.0.0" import time def del_progress(): time.sleep(0.2) def progress_print(total_cnt=20, index_cha='+', pro_total_cnt=50, fun=None): """ :param total_cnt: 总循环次数 :param index_cha: 进度指示符号,可以任意替换喜欢的符号 :param pro_total_cnt: 100%进度显示的总符号个数 :param fun: 每次进度循环处理的回调函数 """ start_time = time.time() for i in range(total_cnt): current_cnt = int((i + 1) / total_cnt * pro_total_cnt) str_progress = index_cha * current_cnt + ' ' * (pro_total_cnt - current_cnt) spend_time = time.time() - start_time print("\033[31m\r{:.1%} [{}] total time: {:.2f}s\033[0m".format((i + 1) / total_cnt, str_progress, spend_time), end="", flush=True) if fun is not None: fun() if __name__ == '__main__': print("当前版本: ", __version__) progress_print(fun=del_progress)输出效果如下: 代码解析 这里用到了几个知识点 print的几个参数:end,flush上面讲过了不再赘述print显示颜色,语法格式为 \033[前景色m******\033[0m # 这里****为打印显示的内容 \033[显示方式; 前景色; 背景色m******\033[0m其中显示方式和颜色如下表 显示方式显示效果0默认值1高亮(加粗)4下划线5闪烁7反显8不可见 前景色背景色颜色说明3040黑色3141红色3242绿色3343黄色3444蓝色3545紫红色3646青蓝色3747白色 format格式化字符串百分比显示和保留小数位数,详细用法见下表 数字格式输出描述3.1415926{:.2f}3.14保留小数点后两位3.1415926{:+.2f}+3.14带符号保留小数点后两位-1{:-.2f}-1.00带符号保留小数点后两位2.71828{:.0f}3不带小数5{:0>2d}05数字补零 (填充左边, 宽度为2)5{:x |
CopyRight 2018-2019 实验室设备网 版权所有 |